<?php

class Perfil_Model extends CI_Model {
	
    function __construct() {
        parent::__construct();
    }
    
    function getPerfil(){    	
    	$this->db->where('id_estado', INT_ESTADO_ACTIVO);
    	$perfil = $this->db->get('perfil');
    	return $perfil->result();
    }

    function getPerfilCliente(){
    	$this->db->select('id_perfil, nombre');
    	$this->db->from ( 'perfil' );
    	$this->db->where ( 'nombre', 'CLIENTE' );
    	$query = $this->db->get ();
    	return $query->row_array ();
    }
    
    function getPerfilProveedor(){
    	$this->db->select('id_perfil, nombre');
    	$this->db->from ( 'perfil' );
    	$this->db->where ( 'nombre', 'PROVEEDOR' );
    	$query = $this->db->get ();
    	return $query->row_array ();
    }
    
    function getListPerfil() {
    	$this->db->select('perfil.nombre AS nombre');
    	$this->db->from('perfil');
    	$this->db->join('tabla_maestra', 'perfil.id_estado = tabla_maestra.id_tabla_maestra');
    	$this->db->where('tabla_maestra.nombre', STR_ESTADO_ACTIVO);
        $this->db->order_by('id_perfil', 'ASC');
        $query = $this->db->get();
        return $query->result();
    }
    
    function getconperfil($data) {
    	$this->db->select('perfil.nombre AS nombre, perfil.id_perfil AS id');
    	$this->db->from('perfil');
    	$this->db->join('usuario_perfil', 'perfil.id_perfil = usuario_perfil.id_perfil');
    	$this->db->join('usuario', 'usuario.id_usuario = usuario_perfil.id_usuario');
    	$this->db->join('tabla_maestra', 'tabla_maestra.id_tabla_maestra = usuario_perfil.id_estado');
    	$this->db->where('tabla_maestra.nombre', STR_ESTADO_ACTIVO);
    	$this->db->where('usuario.username', $data['usuario']);
    	$this->db->order_by('perfil.id_perfil');
    	$query = $this->db->get();
    	return $query->result();
    }
    
	function getsinperfil($data) {
    	$query = $this->db->query('SELECT perfil.nombre AS nombre, perfil.id_perfil AS id
FROM perfil, tabla_maestra
WHERE perfil.id_estado = tabla_maestra.id_tabla_maestra AND
tabla_maestra.nombre = "'. STR_ESTADO_ACTIVO .'" AND
perfil.nombre
NOT IN (
SELECT perfil.nombre
FROM perfil, usuario_perfil, usuario
WHERE perfil.id_perfil = usuario_perfil.id_perfil AND
usuario.id_usuario = usuario_perfil.id_usuario AND
usuario_perfil.id_estado = tabla_maestra.id_tabla_maestra AND
tabla_maestra.nombre = "'. STR_ESTADO_ACTIVO .'" AND
usuario.username = "' . $data['usuario'] . '")');
    	return $query->result();
    }
    
    function getRowCount() {
        return $this->db->count_all('perfil');
    }
    
    function getPorid($id){
    	$porid = $this->db->query('select *
            from perfil
            where id_perfil = ' . $id);
    	return $porid->result();
    }
    
    function insert($data){
    	$this->db->set('nombre', $data['nombre']);
    	$this->db->set('descripcion', $data['descripcion']);
    	$this->db->set('id_estado', $data['estado']);
    	$this->db->set('usuario_registro', $data['usuario_registro']);
    	$this->db->set('fecha_registro', $data['fecha_registro']);
    	$this->db->insert('perfil');
    }

    function update($data) {
    	$this->db->set('nombre', $data['nombre']);
    	$this->db->set('descripcion', $data['descripcion']);
    	$this->db->set('id_estado', $data['estado']);
    	$this->db->set('usuario_modificacion', $data['usuario_modificacion']);
    	$this->db->set('fecha_modificacion', $data['fecha_modificacion']);
    	$this->db->set('ip', $data['ip']);
    	$this->db->where('id_perfil', $data['id']);
    	$this->db->update('perfil');
    }
    
    function delete($id) {
    	$this->db->where('id_perfil', $id);
    	$this->db->delete('perfil');
    }
}
